import { login, getLoginInfo, getUserDetail } from '../../api/user'
import { getToken, removeToken, setToken, setTime } from '../../utils/auth'
const state = {
  // 获取token值
  token: getToken(),
  // 用户信息
  user: {}
}

const mutations = {
  // 设置token值
  setToken(state, data) {
    state.token = data
    // 设置缓存的token
    setToken(data)
  },
  // 删除token值
  removeToken(state, data) {
    state.token = null
    // 清除缓存的token
    removeToken()
  },
  // 设置用户信息
  setNewUser(state, data) {
    state.user = { ...data }
  },
  // 删除用户信息
  removeUser(state, data) {
    state.user = {}
  }
}

const actions = {
  // 异步获取登录信息
  async login(store, data) {
    const res = await login(data)
    // 将token值存入mutations里
    store.commit('setToken', res)
    // 存储登录时间
    setTime()
  },
  async getLoginInfo(store) {
    const res = await getLoginInfo()
    const resDe = await getUserDetail(res.userId)
    // 将res和resDE的信息合并
    const data = {
      ...res,
      ...resDe
    }
    // 将用户信息存储到mutations
    store.commit('setNewUser', data)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
